
//引入视图,如果引入的是html,则得到的是字符串,直接供路由的render方法使用
// 如果引入的是ejs,则得到一个函数,调用函数就能得到内部的html字符串,调用时候还可以传参作为ejs的变量

import advView from '$v/adv';

import {
  isLoginRequest,
  logoutRequest
} from '../api/admin'

export default async (req, res, next) => {
  // 读完一级路由  需要去读二级路由,所以要调用next方法

//路由切换的时候验证登录
try {
  await isLoginRequest();
} catch (e) {
  //请求异常后提示用户
  alert("有异常" + e.message)

  //判断是否是权限异常
  if (!e.isLogin) {
    return router.go("/login");
  }
}


  // res有一个subRoute方法,调用该方法可以得到一个二级路由存放的标识,我们可以把这个标识传递给ejs,放在对应的位置即可
  // res.render(advView({
  //   subRoute:res.subRoute()
  // }));


  // 读完一级路由  需要去读二级路由,所以要调用next方法
  next(advView({
    subRoute: res.subRoute(),
    // 给adv主页传递一个路径,方便在页面内进行url比较,通过类名进行高亮显示
    // 走二级路由的时候一定会走一级路由  在主页面传信息,单独在单页面找信息要注意传的区域
    url: req.url

  })); //这里相当于a(b()),先生成一级路由的页面在调用next函数


  const oLogout = document.getElementById('logout')
  oLogout.onclick = async function () {
    try {
      await logoutRequest();
      //退出成功 清掉token
      localStorage.removeItem("user_token");
      //跳转到登录页面
      router.go("/login")
    } catch (e) {
      alert("退出登录异常" + e.message)
    }
  }

}